package com.google.appengine.api.datastore;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * Unused?
 * @author Secondary User
 */
public interface DatastoreService
{

	public KeyRange allocateIds(Key raw, String kind, long num);

	public KeyRange allocateIds(String kind, long num);

	public KeyRangeState allocateIdRange(KeyRange raw);

	public DatastoreAttributes getDatastoreAttributes();

	public Transaction beginTransaction(TransactionOptions withXG);

	public Transaction beginTransaction();

	public void delete(Key... keys);

	public void delete(Iterable<Key> keys);

	public void delete(Transaction txn, Key... keys);

	public void delete(Transaction txn, Iterable<Key> keys);

	public Entity get(Key key) throws EntityNotFoundException;

	public Map<Key, Entity> get(Iterable<Key> keys);

	public Entity get(Transaction txn, Key key) throws EntityNotFoundException;

	public Map<Key, Entity> get(Transaction txn, Iterable<Key> keys);

	public Collection<Transaction> getActiveTransactions();

	public Transaction getCurrentTransaction();

	public Transaction getCurrentTransaction(Transaction txn);

	public PreparedQuery prepare(Query query);

	public PreparedQuery prepare(Transaction txn, Query query);

	public Key put(Entity entity);

	public List<Key> put(Iterable<Entity> entities);

	public Key put(Transaction txn, Entity entity);

	public List<Key> put(Transaction txn, Iterable<Entity> entities);

	public Map<Index, Index.IndexState> getIndexes();

	public class KeyRangeState
	{
	}
}
